<!--
Copyright Louis Dionne 2013-2017
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
-->
<!-- boost-no-inspect -->
<!-- HTML header for doxygen 1.8.9.1-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<title>Boost.Hana: Configuration options</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(function() { init_search(); });
/* @license-end */
</script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
// Copyright Louis Dionne 2013-2017
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
MathJax.Hub.Config({
    "HTML-CSS": {
        linebreaks: {
            automatic: true,
            width: "75% container"
        }
    }
});
</script>
<script type="text/javascript" async="async" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<!-- Additional javascript for drawing charts. -->
<script type="text/javascript" src="highcharts.js"></script>
<script type="text/javascript" src="highcharts-data.js"></script>
<script type="text/javascript" src="highcharts-exporting.js"></script>
<script type="text/javascript" src="chart.js"></script>
<script type="text/javascript" src="hana.js"></script>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="Boost.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">Boost.Hana
   &#160;<span id="projectnumber">1.7.1</span>
   </div>
   <div id="projectbrief">Your standard library for metaprogramming</div>
  </td>
   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.svg"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
          </span>
        </div>
</td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('group__group-config.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#define-members">Macros</a>  </div>
  <div class="headertitle">
<div class="title">Configuration options</div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Description</h2>
<p>Configurable options to tweak the global behavior of the library. </p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga08dcc32bef198420e646244e851d1995"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group-config.html#ga08dcc32bef198420e646244e851d1995">BOOST_HANA_CONFIG_DISABLE_ASSERTIONS</a></td></tr>
<tr class="memdesc:ga08dcc32bef198420e646244e851d1995"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disables the <code>BOOST_HANA_*_ASSERT</code> macro &amp; friends.  <a href="group__group-config.html#ga08dcc32bef198420e646244e851d1995">More...</a><br /></td></tr>
<tr class="separator:ga08dcc32bef198420e646244e851d1995"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad2b44f7cf8a6ba1002437a1a89e62acd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group-config.html#gad2b44f7cf8a6ba1002437a1a89e62acd">BOOST_HANA_CONFIG_DISABLE_CONCEPT_CHECKS</a></td></tr>
<tr class="memdesc:gad2b44f7cf8a6ba1002437a1a89e62acd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disables concept checks in interface methods.  <a href="group__group-config.html#gad2b44f7cf8a6ba1002437a1a89e62acd">More...</a><br /></td></tr>
<tr class="separator:gad2b44f7cf8a6ba1002437a1a89e62acd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga81de60f5bea16e6ff4a38c94e3022f10"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group-config.html#ga81de60f5bea16e6ff4a38c94e3022f10">BOOST_HANA_CONFIG_ENABLE_STRING_UDL</a></td></tr>
<tr class="memdesc:ga81de60f5bea16e6ff4a38c94e3022f10"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables usage of the "string literal operator template" GNU extension.  <a href="group__group-config.html#ga81de60f5bea16e6ff4a38c94e3022f10">More...</a><br /></td></tr>
<tr class="separator:ga81de60f5bea16e6ff4a38c94e3022f10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga95603295cd6cc840c0dbc50b75e02ee9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group-config.html#ga95603295cd6cc840c0dbc50b75e02ee9">BOOST_HANA_CONFIG_ENABLE_DEBUG_MODE</a></td></tr>
<tr class="memdesc:ga95603295cd6cc840c0dbc50b75e02ee9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables additional assertions and sanity checks to be done by Hana.  <a href="group__group-config.html#ga95603295cd6cc840c0dbc50b75e02ee9">More...</a><br /></td></tr>
<tr class="separator:ga95603295cd6cc840c0dbc50b75e02ee9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac1f8e58978bf4fe02f68ca4646124aee"><td class="memItemLeft" align="right" valign="top"><a id="gac1f8e58978bf4fe02f68ca4646124aee"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group-config.html#gac1f8e58978bf4fe02f68ca4646124aee">BOOST_HANA_MAJOR_VERSION</a>&#160;&#160;&#160;1</td></tr>
<tr class="memdesc:gac1f8e58978bf4fe02f68ca4646124aee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro expanding to the major version of the library, i.e. the <code>x</code> in <code>x.y.z</code>. <br /></td></tr>
<tr class="separator:gac1f8e58978bf4fe02f68ca4646124aee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafd6a702442b280083efe2690da5621bd"><td class="memItemLeft" align="right" valign="top"><a id="gafd6a702442b280083efe2690da5621bd"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group-config.html#gafd6a702442b280083efe2690da5621bd">BOOST_HANA_MINOR_VERSION</a>&#160;&#160;&#160;7</td></tr>
<tr class="memdesc:gafd6a702442b280083efe2690da5621bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro expanding to the minor version of the library, i.e. the <code>y</code> in <code>x.y.z</code>. <br /></td></tr>
<tr class="separator:gafd6a702442b280083efe2690da5621bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga50940f9267eacd0da0d4d8ccbfac8817"><td class="memItemLeft" align="right" valign="top"><a id="ga50940f9267eacd0da0d4d8ccbfac8817"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group-config.html#ga50940f9267eacd0da0d4d8ccbfac8817">BOOST_HANA_PATCH_VERSION</a>&#160;&#160;&#160;1</td></tr>
<tr class="memdesc:ga50940f9267eacd0da0d4d8ccbfac8817"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro expanding to the patch level of the library, i.e. the <code>z</code> in <code>x.y.z</code>. <br /></td></tr>
<tr class="separator:ga50940f9267eacd0da0d4d8ccbfac8817"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2fb384037c12a706e1a1cac053065648"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group-config.html#ga2fb384037c12a706e1a1cac053065648">BOOST_HANA_VERSION</a></td></tr>
<tr class="memdesc:ga2fb384037c12a706e1a1cac053065648"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro expanding to the full version of the library, in hexadecimal representation.  <a href="group__group-config.html#ga2fb384037c12a706e1a1cac053065648">More...</a><br /></td></tr>
<tr class="separator:ga2fb384037c12a706e1a1cac053065648"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="ga08dcc32bef198420e646244e851d1995"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga08dcc32bef198420e646244e851d1995">&#9670;&nbsp;</a></span>BOOST_HANA_CONFIG_DISABLE_ASSERTIONS</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BOOST_HANA_CONFIG_DISABLE_ASSERTIONS</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="config_8hpp.html">boost/hana/config.hpp</a>&gt;</code></p>

<p>Disables the <code>BOOST_HANA_*_ASSERT</code> macro &amp; friends. </p>
<p>When this macro is defined, the <code>BOOST_HANA_*_ASSERT</code> macro &amp; friends are disabled, i.e. they expand to nothing.</p>
<p>This macro is defined automatically when <code>NDEBUG</code> is defined. It can also be defined by users before including this header or defined on the command line. </p>

</div>
</div>
<a id="gad2b44f7cf8a6ba1002437a1a89e62acd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad2b44f7cf8a6ba1002437a1a89e62acd">&#9670;&nbsp;</a></span>BOOST_HANA_CONFIG_DISABLE_CONCEPT_CHECKS</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BOOST_HANA_CONFIG_DISABLE_CONCEPT_CHECKS</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="config_8hpp.html">boost/hana/config.hpp</a>&gt;</code></p>

<p>Disables concept checks in interface methods. </p>
<p>When this macro is not defined (the default), tag-dispatched methods will make sure the arguments they are passed are models of the proper concept(s). This can be very helpful in catching programming errors, but it is also slightly less compile-time efficient. You should probably always leave the checks enabled (and hence never define this macro), except perhaps in translation units that are compiled very often but whose code using Hana is modified very rarely. </p>

</div>
</div>
<a id="ga81de60f5bea16e6ff4a38c94e3022f10"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga81de60f5bea16e6ff4a38c94e3022f10">&#9670;&nbsp;</a></span>BOOST_HANA_CONFIG_ENABLE_STRING_UDL</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BOOST_HANA_CONFIG_ENABLE_STRING_UDL</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="config_8hpp.html">boost/hana/config.hpp</a>&gt;</code></p>

<p>Enables usage of the "string literal operator template" GNU extension. </p>
<p>That operator is not part of the language yet, but it is supported by both Clang and GCC. This operator allows Hana to provide the nice <code>_s</code> user-defined literal for creating compile-time strings.</p>
<p>When this macro is not defined, the GNU extension will be not used by Hana. Because this is a non-standard extension, the macro is not defined by default. </p>

</div>
</div>
<a id="ga95603295cd6cc840c0dbc50b75e02ee9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga95603295cd6cc840c0dbc50b75e02ee9">&#9670;&nbsp;</a></span>BOOST_HANA_CONFIG_ENABLE_DEBUG_MODE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BOOST_HANA_CONFIG_ENABLE_DEBUG_MODE</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="config_8hpp.html">boost/hana/config.hpp</a>&gt;</code></p>

<p>Enables additional assertions and sanity checks to be done by Hana. </p>
<p>When this macro is defined (it is <b>not defined</b> by default), additional sanity checks may be done by Hana. These checks may be costly to perform, either in terms of compilation time or in terms of execution time. These checks may help debugging an application during its initial development, but they should not be enabled as part of the normal configuration. </p>

</div>
</div>
<a id="ga2fb384037c12a706e1a1cac053065648"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2fb384037c12a706e1a1cac053065648">&#9670;&nbsp;</a></span>BOOST_HANA_VERSION</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BOOST_HANA_VERSION</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="version_8hpp.html">boost/hana/version.hpp</a>&gt;</code></p>
<b>Value:</b><div class="fragment"><div class="line">    <a class="code" href="version_8hpp.html#a36988ad8e4f82e0bfb7ff8e4808143a7">BOOST_HANA_CONFIG_VERSION</a>(<a class="code" href="group__group-config.html#gac1f8e58978bf4fe02f68ca4646124aee">BOOST_HANA_MAJOR_VERSION</a>,                     \</div>
<div class="line">                              <a class="code" href="group__group-config.html#gafd6a702442b280083efe2690da5621bd">BOOST_HANA_MINOR_VERSION</a>,                     \</div>
<div class="line">                              <a class="code" href="group__group-config.html#ga50940f9267eacd0da0d4d8ccbfac8817">BOOST_HANA_PATCH_VERSION</a>)                     \</div>
<div class="ttc" id="agroup__group-config_html_ga50940f9267eacd0da0d4d8ccbfac8817"><div class="ttname"><a href="group__group-config.html#ga50940f9267eacd0da0d4d8ccbfac8817">BOOST_HANA_PATCH_VERSION</a></div><div class="ttdeci">#define BOOST_HANA_PATCH_VERSION</div><div class="ttdoc">Macro expanding to the patch level of the library, i.e. the z in x.y.z.</div><div class="ttdef"><b>Definition:</b> version.hpp:31</div></div>
<div class="ttc" id="agroup__group-config_html_gac1f8e58978bf4fe02f68ca4646124aee"><div class="ttname"><a href="group__group-config.html#gac1f8e58978bf4fe02f68ca4646124aee">BOOST_HANA_MAJOR_VERSION</a></div><div class="ttdeci">#define BOOST_HANA_MAJOR_VERSION</div><div class="ttdoc">Macro expanding to the major version of the library, i.e. the x in x.y.z.</div><div class="ttdef"><b>Definition:</b> version.hpp:23</div></div>
<div class="ttc" id="agroup__group-config_html_gafd6a702442b280083efe2690da5621bd"><div class="ttname"><a href="group__group-config.html#gafd6a702442b280083efe2690da5621bd">BOOST_HANA_MINOR_VERSION</a></div><div class="ttdeci">#define BOOST_HANA_MINOR_VERSION</div><div class="ttdoc">Macro expanding to the minor version of the library, i.e. the y in x.y.z.</div><div class="ttdef"><b>Definition:</b> version.hpp:27</div></div>
<div class="ttc" id="aversion_8hpp_html_a36988ad8e4f82e0bfb7ff8e4808143a7"><div class="ttname"><a href="version_8hpp.html#a36988ad8e4f82e0bfb7ff8e4808143a7">BOOST_HANA_CONFIG_VERSION</a></div><div class="ttdeci">#define BOOST_HANA_CONFIG_VERSION(version, revision, patch)</div><div class="ttdef"><b>Definition:</b> version.hpp:18</div></div>
</div><!-- fragment -->
<p>Macro expanding to the full version of the library, in hexadecimal representation. </p>
<p>Specifically, <code>BOOST_HANA_VERSION</code> expands to an hexadecimal number of the form 0xVVRRPPPP, where <code>VV</code> is the major version of the library, <code>RR</code> is the minor version and <code>PPPP</code> is the patch level. This allows the version of the library to be compared: </p><div class="fragment"><div class="line"><span class="preprocessor">#include &lt;<a class="code" href="version_8hpp.html">boost/hana/version.hpp</a>&gt;</span></div>
<div class="line"> </div>
<div class="line"> </div>
<div class="line"><span class="preprocessor">#if BOOST_HANA_VERSION &lt; 0x01020003</span></div>
<div class="line">    <span class="comment">// Hana&#39;s version is &lt; 1.2.3</span></div>
<div class="line"><span class="preprocessor">#else</span></div>
<div class="line">    <span class="comment">// Hana&#39;s version is &gt;= 1.2.3</span></div>
<div class="line"><span class="preprocessor">#endif</span></div>
<div class="ttc" id="aversion_8hpp_html"><div class="ttname"><a href="version_8hpp.html">version.hpp</a></div><div class="ttdoc">Defines macros for tracking the version of the library.</div></div>
</div><!-- fragment --><dl class="section note"><dt>Note</dt><dd>The major, minor and patch versions of the library are also available individually with the <code>BOOST_HANA_{MAJOR,MINOR,PATCH}_VERSION</code> macros. </dd></dl>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!--
Copyright Louis Dionne 2013-2017
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
-->
<!-- boost-no-inspect -->
<!-- HTML footer for doxygen 1.8.9.1-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
  </ul>
</div>
</body>
</html>
